package com.yixun.qfbao.api.service;

import java.util.Map;

import com.yixun.qfbao.apidto.ChangeWeixinModelSettingReqDto;
import com.yixun.qfbao.apidto.ChangeWeixinModelSettingResDto;
import com.yixun.qfbao.apidto.GetWxModelSetListReqDto;
import com.yixun.qfbao.apidto.GetWxModelSetListResDto;
import com.yixun.qfbao.apidto.base.CommonReqDTO;
import com.yixun.qfbao.apidto.base.CommonResDTO;
import com.yixun.qfbao.apidto.v10dto.BaseResponseDto;
import com.yixun.qfbao.model.ThirdPartyUser;
import com.yixun.qfbao.model.dto.ThirdPartyUserDto;

public interface WeiXinService {

    Map<String,String> getWeiXinToken(String code, String companyUuid, String systemId);

    ThirdPartyUserDto getWeiXinInfo(String token, String openId);

    BaseResponseDto<ThirdPartyUser> getUserInfoFor(String openId);

    Map getWxConfig(String companyUuid, String subDomain, String systemId);

    ChangeWeixinModelSettingResDto changeWexinModelSetting(ChangeWeixinModelSettingReqDto reqDto);

    GetWxModelSetListResDto getWxMsgModelList(GetWxModelSetListReqDto reqDto);

    CommonResDTO weixinMsgPushSetting(CommonReqDTO reqDTO);
    
    /**
     * 微信回调的处理接口
     * @param msgContent
     */
    void wxMsgCallBack(String appId, String msgContent);
    
    /**
     * 刷新公众号的关注信息至绑定信息表
     *  add by zilong.liu 2020.9.17
     * @return
     */
    String refreshAttetionToBindInfo(String appId);
    
    /**
     * 刷新当前人员的OPENID
     * @param userId
     * @param systemId
     * @param openId
     */
    String refreshOpenId(String openId, String userId, String systemId, String companyUuid);
    
    
    /**
     * 获取对应的小程序码
     * @param scene
     * @param page
     * @return
     */
    byte[] getWeappQrCodeByCompanyUuid(String companyUuid, String scene, String page);
}
